package main

import (
	_ "beegoProject19/models/auth"
	_ "beegoProject19/models/finance"
	_ "beegoProject19/models/my_center"
	_ "beegoProject19/models/news"
	_ "beegoProject19/routers"
	"beegoProject19/utils"
	"fmt"
	"github.com/astaxie/beego"
	"github.com/astaxie/beego/logs"
	"github.com/astaxie/beego/orm"
	_ "github.com/go-sql-driver/mysql"
	"log"
)

/*
9.112【消息通知模块】业务分析及表设计
9.113【消息通知模块】模型创建及表迁移
9.114【消息通知模块】消息通知触发逻辑分析
	1. 新增表结构 models -> auth -> auth.go -》 MessageNotify 初始化并创建
	2. go run main.go orm syndb -v


9.115【消息通知模块】消息通知逻辑部分完成
	1. 在用户登陆首页触发请求，home_controller.go Get 函数内增加消息


9.116【消息通知模块】消息分页及消息已阅读功能完成
	1. 前端页面展示消息 home_controller.go Get 106-114H
	2. index.html 30H
	3. home_controller.go NotifyList 使用 websocket方优化
	4. user-list.html -> notify-list.html
	5. 路由
	6. index.html 34H
	7. notify-list.html 33，35，45，删除50-54，61-65H
	8. 定义 NotifyList 逻辑包含分页
	9. notify-list.html 68,73-96H
	10. 增加阅读函数 ReadNotify 定义逻辑
	11. 路由


9.117【echarts模块】echarts的使用介绍
    官网实例: https://echarts.apache.org/examples/zh/index.html
	1. 页面增加图标权限 报表管理，#，报表管理，一级菜单，81
		报表管理，财务报表，二级菜单，80
		报表管理，业务报表，二级菜单，79
		报表管理，课程报表，二级菜单，78
	2. 创建controller - echarts - echarts_caiwu_controller.go  Get
	3. views - echarts  echarts1.html 拷贝到 echarts-caiwu.html
	4. 路由
	5. 数据库修改url
	6. echarts-caiwu.html 删除17-19H 24-26H 102-110H,


9.118【echarts模块】报表页面完善
	1. 使用基础折线图 https://echarts.apache.org/examples/zh/editor.html?c=line-simple
	2. 替换财务报表 option
	4. 增加财务函数 GetCaiWuChart
	5. 增加业务控制器 echarts_business_controller.go
	6. 增加课程控制器 echarts_course_controller.go
	7. 路由
	8. echarts-caiwu.html 拷贝 echarts-course/echarts-business
	9.数据库修改url


9.119【echarts模块】财务报表折线图功能完成
	1. 图形
       财务 - 折线图 Basic Line Chart
       业务 - 柱状图 Bar with Background
       课程 - 对叠图 Stacked Line Chart
	2. 编辑 财务函数 GetCaiWuChart
	3. 编辑 echarts-caiwu.html 在head内增加jquery
       3.1 拷贝课件jquery.min.js -> /static/js/jquery.min.js
       3.2 增加14H 三个html引入js （echarts-course/echarts-business/echarts-caiwu）
	4. echarts-caiwu.html 48-82H


9.120【echarts模块】业务报表柱状图功能完成
	1. 编辑 GetBusinessChart控制器 和页面 echarts-business.html


9.121【echarts模块】课程报表堆叠图一
9.122【echarts模块】课程报表堆叠图二
	1. 编辑 GetBusinessChart控制器
	2. 页面 echarts-course.html 增加ajax 45H


9.123【总结】实战课程总结
      修改js引用：

      <!-- 正确顺序 -->
      <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
      <script>
          // 你的代码（现在可以使用 $）
          $(document).ready(function() {
              console.log("jQuery 已加载");
          });
      </script>

*/

func init() {
	user := beego.AppConfig.DefaultString("mysql::Username", "root")
	pwd := beego.AppConfig.DefaultString("mysql::Password", "Ideal123")
	host := beego.AppConfig.DefaultString("mysql::Host", "127.0.0.1")
	port := beego.AppConfig.DefaultInt("mysql::Port", 3306)
	dbName := beego.AppConfig.DefaultString("mysql::DbName", "beegoProject")

	dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=true&loc=PRC",
		user, pwd, host, port, dbName)

	orm.RegisterDriver("mysql", orm.DRMySQL)
	orm.RegisterDataBase("default", "mysql", dsn)

	db, err := orm.GetDB("default")
	if err != nil {
		log.Fatal(err)
	} else if err := db.Ping(); err != nil {
		log.Fatal(err)
	}
}

func main() {

	orm.RunCommand()
	/*	orm.Debug = true*/
	beego.BConfig.WebConfig.Session.SessionOn = true

	// 未登录请求拦截
	beego.InsertFilter("/main/*", beego.BeforeRouter, utils.LoginFilter)

	// 日志
	logs.SetLogger(logs.AdapterMultiFile, `{"filename":"logs/beego.log","separate":["error","info","debug"]}`)
	logs.SetLogFuncCallDepth(3)
	beego.SetStaticPath("/upload", "upload")

	beego.Run()
}
